""" 命令行工具唤起 ocr web服务 """
import typer

from ezocr_server import OCRService, is_port_in_use

app = typer.Typer()


@app.command()
def start(
        port: int = typer.Option(9911, "--port", "-p", help="端口号"),
        memfile_max: int = typer.Option(300 * 1024 * 1024, "--memfile-max", "-m",
                                        help="文件大小限制"),
):
    """
    启动OCR服务

    Args:
        port: 服务端口号，默认9911
        memfile_max: 上传文件大小限制，默认300MB
    """
    if is_port_in_use(port):
        typer.echo(f"端口 {port} 已被占用")
        raise typer.Exit(code=1)

    typer.echo(f"正在启动OCR服务，端口: {port}")
    service = OCRService()
    service.start(port=port, memory_size=memfile_max)
    typer.echo("OCR服务启动成功")


@app.command()
def version():
    """
    查看版本号
    """
    typer.echo("OCR服务版本号: 0.1.0")


if __name__ == "__main__":
    app()
